home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cpp_libs / answrbok / shape.lha / shape / slist.h < prev   
Text File  |  1993-08-08  |  769b  |  68 lines

  1. ifndef SLIST_H
  2. define SLIST_H
  3.  
  4. ypedef void* ent;
  5.  
  6. lass slink
  7.  
  8.    friend class slist;
  9.    friend class slist_iterator;
  10.  
  11.    slink *next;
  12.    ent e;
  13.    slink(ent a, slink *p) 
  14. {
  15. e = a;
  16. next = p;
  17. }
  18. ;
  19.  
  20. lass slist
  21.  
  22.    friend class slist_iterator;
  23.    slink *last;
  24. ublic:
  25.    int insert(ent a);
  26.    int append(ent a);
  27.    ent get();
  28.    void clear();
  29.    slist() 
  30. {
  31. last = 0;
  32. }
  33.    slist(ent a)
  34. {
  35. last = new slink(a, 0);
  36. last->next = last;
  37. }
  38.    ~slist()
  39. {
  40. clear();
  41. }
  42. ;
  43.  
  44. lass slist_iterator
  45.  
  46.    slink *ce;
  47.    slist *cs;
  48.  
  49. ublic:
  50.    slist_iterator(slist &s)
  51. {
  52. cs = &s;
  53. ce = cs->last;
  54. }
  55.    
  56.    ent operator()()
  57. {
  58. ent ret = ce ? (ce = ce->next)->e : 0;
  59. if (ce == cs->last) ce = 0;
  60. return ret;
  61. }
  62. ;
  63.  
  64. ypedef void (*PFC)(char*);
  65. xtern PFC slist_handler;
  66. xtern PFC set_slist_handler(PFC);
  67. endif
  68.